# Esta clase maneja los roles de usuario que van a ser utilizados por el sistema.
class RoleUsersController < ApplicationController
  
  		before_filter :ensure_login
  before_filter :ensure_adm

# Recupera todos los roles de usuario.
  def index
    @role_users = RoleUser.search(params[:search], params[:page])
		
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @role_users }
    end
  end

# Recupera el rol que va a ser visualizado en pantalla.
  def show
    @role_user = RoleUser.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @role_user }
    end
  end

# Prepara el nuevo rol para ser posteriormente creado.
  def new
    @role_user = RoleUser.new

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @role_user }
    end
  end

# Recupera el rol que va a ser editado.
  def edit
    @role_user = RoleUser.find(params[:id])
  end

# Crea el rol.
  def create
    @role_user = RoleUser.new(params[:role_user])

    respond_to do |format|
      if @role_user.save
        flash[:notice] = 'RoleUser was successfully created.'
        format.html { redirect_back_or_default('/role_users') }
        format.xml  { render :xml => @role_user, :status => :created, :location => @role_user }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @role_user.errors, :status => :unprocessable_entity }
      end
    end
  end

# Actualiza el rol.
  def update
    @role_user = RoleUser.find(params[:id])

    respond_to do |format|
      if @role_user.update_attributes(params[:role_user])
        flash[:notice] = 'RoleUser was successfully updated.'
        format.html { redirect_back_or_default('/role_users') }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @role_user.errors, :status => :unprocessable_entity }
      end
    end
  end

# Elimina el rol.
  def destroy
    @role_user = RoleUser.find(params[:id])
    if chequear_estado(@role_user)
 			@role_user.destroy
			respond_to do |format|
   			format.html { redirect_to(role_users_url) }
   			format.xml  { head :ok }
   		end	
 		else
 			redirect_to (role_users_url)
 		end
	end
	
# Verificar que no exista un usuario asigado a ese rol. En caso de existir un usuario el rol no puede eliminarse.	
	def chequear_estado(role_user)
		if User.find(:first,:conditions => ['role_user_id = ?',role_user.id])
			return false
		end
		return true
	end
  
end
